﻿using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Wq.CaseService.Entities
{
    [Tenant("case")]
    [SugarTable("Wq_Example")]
    public class ExampleInfo
    {
        /// <summary>
        /// Id 
        /// </summary>
        [SugarColumn(ColumnDescription = "Id", IsPrimaryKey = true, IsIdentity = true)]
        public long Id { get; set; }

        /// <summary>
        /// 案例名称
        /// </summary>
        [SugarColumn(ColumnDescription = "案例名称")]
        public string Name { get; set; }

        /// <summary>
        /// 标签
        /// </summary>
        [SugarColumn(ColumnDescription = "标签")]
        public string Tag { get; set; }

        /// <summary>
        /// 主办方
        /// </summary>
        [SugarColumn(ColumnDescription = "主办方")]
        public string Sponsor { get; set; }

        /// <summary>
        /// 头像
        /// </summary>
        [SugarColumn(ColumnDescription = "头像", Length = 255)]
        public string Thumbnail { get; set; }

        /// <summary>
        /// 行业
        /// </summary>
        [SugarColumn(ColumnDescription = "行业Id")]
        public long IndustryId { get; set; }
        /// <summary>
        /// 分类Id
        /// </summary>
        [SugarColumn(ColumnDescription = "分类Id")]
        public int CategoryId { get; set; }

        /// <summary>
        /// 开始时间
        /// </summary>
        [SugarColumn(ColumnDescription = "开始时间")]
        public DateTime StartDate { get; set; }

        /// <summary>
        /// 结束时间
        /// </summary>
        [SugarColumn(ColumnDescription = "结束时间")]
        public DateTime EndDate { get; set; }

        /// <summary>
        /// 活动目的
        /// </summary>
        [SugarColumn(ColumnDescription = "活动目的")]
        public string Purpose { get; set; }

        /// <summary>
        /// 客户备注
        /// </summary>
        [SugarColumn(ColumnDescription = "客户备注")]
        public string Remark { get; set; }

        /// <summary>
        /// 参会人员
        /// </summary>
        [SugarColumn(ColumnDescription = "参会人员")]
        public string Attendees { get; set; }

        /// <summary>
        /// 人数
        /// </summary>
        [SugarColumn(ColumnDescription = "人数")]
        public int People { get; set; }

        /// <summary>
        /// 场地要求
        /// </summary>
        [SugarColumn(ColumnDescription = "场地要求")]
        public string Requirements { get; set; }

        /// <summary>
        /// 体验
        /// </summary>
        [SugarColumn(ColumnDescription = "体验")]
        public string Experience { get; set; }

        /// <summary>
        /// 顾问Id
        /// </summary>
        [SugarColumn(ColumnDescription = "顾问Id")]
        public long AdviserId { get; set; }
        /// <summary>
        /// 顾问备注
        /// </summary>
        [SugarColumn(ColumnDescription = "顾问备注")]
        public string AdviserRemark { get; set; }
        /// <summary>
        /// 理由
        /// </summary>
        [SugarColumn(ColumnDescription = "理由")]
        public string Reason { get; set; }
        /// <summary>
        /// 场地Id
        /// </summary>
        [SugarColumn(ColumnDescription = "场地Id")]
        public long VenueId { get; set; }

        /// <summary>
        /// 游览量
        /// </summary>
        [SugarColumn(ColumnDescription = "游览量")]
        public int Visits { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        [SugarColumn(ColumnDescription = "创建时间")]
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 内容
        /// </summary>
        [SugarColumn(ColumnDescription = "内容", ColumnDataType = "text")]
        public string Description { get; set; }

        /// <summary>
        /// 排序序号
        /// </summary>
        [SugarColumn(ColumnDescription = "排序序号")]
        public int Sequence { get; set; }

        /// <summary>
        /// 特色
        /// </summary>
        [Navigate(NavigateType.OneToMany, nameof(ExampleFeaturesInfo.ExampleId))]
        public List<ExampleFeaturesInfo> Features { get; set; }

        /// <summary>
        /// 流程
        /// </summary>
        [Navigate(NavigateType.OneToMany, nameof(ProcessInfo.ExampleId))]
        public List<ProcessInfo> Process { get; set; }

        /// <summary>
        /// 图片
        /// </summary>

        [Navigate(NavigateType.OneToMany, nameof(ExampleThumbnailInfo.ExampleId))]
        public List<ExampleThumbnailInfo> Thumbnails { get; set; }
    }
}
